package com.bbcare.followup.plat.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.bbcare.followup.plat.entity.EltDstRecored;
import com.bbcare.followup.plat.entity.Patient;
import com.bbcare.followup.plat.entity.PtEvaluationGuide;
import com.bbcare.followup.plat.entity.PtEvaluationResult;
import redis.clients.jedis.Jedis;

/**
 *
 * @name:         IFollowEvaluationService.java
 * @author:       tao
 * @createTime:   2017年6月20日
 * @description:  随访服务接口类
 * @modify:
 *
 */
public interface IFollowEvaluationService {

	//获取贝利筛查题目
	Map<String,Object> getBaileyScreeningPostion() throws Exception;

	//获取小儿神经题目
	Map<String,Object> getNeuropsychologyPostion() throws Exception;

	//判断redis 是否有Postion 数据 没有从数据中取 2020年10月14日
	void getPostion(Jedis jedis) throws Exception;
	//Name: 获取贝利筛选指导
	Map<String,Object> getBaileyScreeningGuide(Date date)throws Exception;

	// 获取gesell筛选题目
	Map<String,Object> getGesellPostion() throws Exception;

	//根据年龄获取气质题目
	Map<String, Object> getTemperamentPostion(Patient pt,String createTime) throws Exception;

	//获取小韦氏智力评测题目
	Map<String, Object> getWechslerPostion(Date date) throws Exception;

	//保存测评记录
	int savePtEvaluationResult(PtEvaluationResult result,List<PtEvaluationGuide> list) throws Exception ;

	//查询评测历史总数
	int selectPtEvaluationResultCount(Map<String,Object> map) throws Exception ;

	//查询随访评测历史列表
	List<Map<String, Object>> selectPtEvaluationResults(Map<String,Object> map) throws Exception ;

	//查询随访评测历史详情
	Map<String, Object> selectPtEvaluationResultDetail(Map<String,Object> map) throws Exception ;

	//查询评估患者历史
    List<Map<String, Object>> getEvaluationPatientList(Map<String, Object> paramMap) throws Exception;
    int getEvaluationPatientCount(Map<String, Object> paramMap) throws Exception;

    //高危孕产妇评估题目
  	Map<String, Object> getHighPregnantPostion(Map<String,Object> map) throws Exception;

  	//ALberta评估题目
  	Map<String, Object> getAIMSPostion(Map<String,Object> map) throws Exception;

  	//抑郁评估
  	List<Map<String,Object>> getPregnantSDSPostion(Map<String,Object> map) throws Exception;

  	//焦虑评估
  	List<Map<String,Object>> getPregnantSASPostion(Map<String,Object> map) throws Exception;

  	//抑郁评估版本2
	Map<String,Object> getPregnantSDS2Postion(Map<String,Object> map) throws Exception;

  	//焦虑评估版本2
  	Map<String,Object> getPregnantSAS2Postion(Map<String,Object> map) throws Exception;

  	//爱丁堡产后抑郁
  	List<Map<String,Object>> getPregnantEPDSPostion(Map<String,Object> map) throws Exception;

  	//通用问卷问题查询方法
  	List<JSONObject> getPregnantCommonPostion(Map<String,Object> map) throws Exception;

  	//指导意见 增加修改
  	Map<String,Object> modifyGuide(Map<String,Object> map) throws Exception;

  	//Name: 获取评估筛选指导
  	Map<String,Object> getEvaluationGuide(Map<String,Object> map)throws Exception;

  	//Name: 获取评估筛选指导，无需修改的指导意见
  	Map<String,Object> getEvaluationGuideByAge(Map<String,Object> map)throws Exception;

  	//AIMS曲线查询
  	Map<String, Object> getAimsCurvedata(Map<String, Object> paramMap) throws Exception;
  	//SDQ答题详情
  	Map<String, Object> getAnswerDetail(Map<String, Object> map)throws Exception;

  	//peabody题目
	Map<String, Object> getPregnantPeabodyPostion(Map<String, Object> paramsMap) throws Exception;

	//peabody题目
	Map<String, Object> getPregnantBSIDPostion(Map<String, Object> paramsMap) throws Exception;

	//随访评估指导  多记录
	List<Map<String, Object>> getEvaluationGuides(Map<String,Object> paramMap) throws Exception;

	//Peabody查询
	Map<String, Object> getPeabodydata(Map<String, Object> paramMap) throws Exception;

	Map<String, Object> getPregnantBSID2Postion(Map<String, Object> paramsMap)throws Exception;

	Map<String, Object> getWorkOrderReport(Map<String,Object> map)throws Exception;
	//查询气质评估知道意见
	Map<String, Object> getTEMPGuide(Map<String, Object> param, Patient pt)throws Exception;

	//查询用户GMS信息
	Map<String, Object> selectGmsResultDetail(Map<String, Object> map) throws Exception;

	//查询Gms用户指导意见信息
	List<Map<String, Object>> getEvaluationGuideGms(Map<String, Object> param)throws Exception;

	//查询职业紧张压力指数问卷
	Map<String, Object> getPregnantLESPostion(Map<String, Object> paramsMap) throws Exception;

	List<Map<String, Object>> queryPtResultTimes(Map<String, Object> param) throws Exception;

	List<Map<String, Object>> queryPtResultDay(Map<String, Object> param) throws Exception;

	//查询gesell指导意见
	Map<String, Object> getGesellGuide(Map<String, Object> param, Patient pt) throws Exception;

	//查询gesell最新数据
	Map<String, Object> selectGesellScore(Map<String, Object> map) throws Exception;
	//查询DST问卷
	Map<String, Object> getDSTPostion(Map<String, Object> paramsMap) throws Exception;

	int saveEltDstRecoreResults(EltDstRecored dst) throws Exception;

	//查询随访评测历史列表
	Map<String, Object> selectPtDSTResults(Map<String,Object> map) throws Exception ;

	List<Map<String, Object>> selectGesellScoreList(Map<String, Object> map) throws Exception;

	/**
	 * 删除患者的评估历史记录（物理）。
	 * @param evaluationId
	 * @return 是否成功删除了记录。
	 * @throws Exception
	 */
	public Boolean deleteEvaluationHistory(final String evaluationId) throws Exception;

	public int saveDraftForPeabody(PtEvaluationResult draft) throws Exception;
	public List<PtEvaluationResult> selectDraftForPeabody(Map<String, Object> paraMap) throws Exception;
	public int deleteDraftForPeabody(final String patId) throws Exception;
}
